System and method for implementing proxy independent hunt group function in a packet based network

ABSTRACT

A system and method are provided for implementing the Hunt group function without the necessity of using any proxy functionalities. The Hunt group function can be independent of the signaling protocol being used by VoIP terminals. Consequently, there is no need of any special or proprietary signaling protocol to be implemented. Instead of registering all members or all VoIP nodes belonging to a Hunt group to a registration entity, only one pre-configured VoIP node belonging to the particular Hunt group needs to be registered. Likewise, instead of all members or VoIP nodes in the Hunt group registering with a registration entity and having a Hunt group number in addition to their usual peer-to-peer numbers, only one pre-configured VoIP node in the Hunt group would perform the registration and be registered with the Hunt group number. All incoming calls to the Hunt group will be directed by the gateway to the pre-configured VoIP node first. A method of the present embodiment may be performed by the gateway to ensure that the incoming call is forwarded to a VoIP node within the Hunt group.

FIELD OF THE INVENTION

This disclosure relates generally to Voice over Internet Protocol (VoIP)protocols and technology. In particular, this disclosure relates to asystem and method for implementing proxy independent hunt group functionin a VoIP environment without modification to existing availableprotocols.

BACKGROUND OF THE INVENTION

Many features available in conventional private branch exchange (PBX orPABX) phone systems are fast becoming available in VoIP phone systems aswell. One of these features which may be desirable in industries such ashelp-desk services is: Line group features.

Line Group feature is useful where several endpoints with their ownseparate extensions carry out a similar service function such as in ahelp-desk scenario. Calls to a line group number are distributed amongthe several extensions which make up the members of the Line group. Linegroup members may be called either in a given sequence or according to apredetermined algorithm to ensure all members receive an equal number ofcalls. When a specific extension has been selected, the endpoint of thatextension will ring until answered or until a predetermined period oftime has passed.

Depending on the distribution of signaling by a central communicationcontroller to the individual group endpoints, three fundamental linegroup types are distinguished. If a call directed from a callingendpoint is signaled to all the members of the group endpointssimultaneously then a Pickup group function is involved. If the incomingcall is signaled to a single group endpoint and thereafter respectivelysignaled to the next endpoint because the first group endpoint does notrespond within a particular time-period, a Hunting group function isinvolved. If a call directed to a group address is signaled specificallyto a group endpoint by the central controller on the basis of anautomatic call distribution function, this is called Automatic CallDistribution (ACD).

Referring to FIG. 1, a message flow diagram of a prior artimplementation using H.323 protocol of a Pickup group function where aProxy 50 acts as a central controller is shown. The called party is agroup comprising of Endpoints B 20 and C 30. The group has a group aliasaddress that is converted into a group transport address known to theproxy 50.

The calling Endpoint A 10 sends a H.225 Setup message 11 to the grouptransport address via the proxy 50. The proxy 50 forwards this messageto all the members in the group. In the H.225 Setup message 11, thecontact transport address responding to a Q.931 message would be the IPaddress and port number used by the proxy 50. Thus, on receiving theH.225 Setup message 11, the group members will respond with a CallProceeding 21, 31 and Alerting 22, 32 message to the proxy 50.

The proxy 50 may receive several Call Proceeding 21, 31 and Alerting 22,32 messages at one time. However, not all the messages can be relayed tothe Endpoint A 10. Only the first response by a first of the members isrelayed to endpoint A 10 while the rest of the responses are ignored. Atthis stage, all the phones that are members of the Pickup Group play apower ring. If the call is answered, by endpoint B 20 in the illustratedcase, the endpoint sends a CONNECT 23 message to the proxy 50. And theproxy 50 relays it forward to Endpoint A 10. If more than one endpointanswers the call, then the proxy 50 relays the first received CONNECT 23message and ignores the rest of them. The endpoint that answers the callfirst, Endpoint B 20 in the illustrated case, opens the logical channelsand a complete connection is established between Endpoint A 10 andEndpoint B 20. The other endpoints in the group are sent a Release 57message from the proxy 50 to disconnect the call.

Referring to FIG. 2 a message flow diagram of a prior art implementationusing H.323 protocol of a Hunt group function where the Proxy 50 acts asa central controller is shown. In this case, the H.225 Setup message 11is not sent to all the endpoints in the group. Rather the H.225 Setupmessage 11 is sent to the group members one by one.

In the present example of FIG. 2, the proxy 50 relays the H.225 Setupmessage 11 received from Endpoint A 10, first to Endpoint B 20. EndpointB 20 on receiving the H.225 Setup message 11, responds with CallProceeding 21 and Alerting 22 message which is relayed forward by theproxy 50 to Endpoint A 10. If at this stage Endpoint B 20 is busy or donot wish to attend the call, then after a predetermined period of timeor time-out, the proxy 50 will release the call with Endpoint B 20ReleaseComplete message 57 and will forward the H.225 Setup message 52to the next member in the group, Endpoint C 30 in the illustrated case.Endpoint C 30 on receiving the H.225 Setup message 52 will also respondwith Call Proceeding 31 and Alerting 32 messages. But this time, theproxy 50 will not relay these messages to Endpoint A 10 as thesemessages have already been received by Endpoint A 10 as responses fromEndpoint B 20. If any endpoint answers the call, in the illustrated caseEndpoint C 30, then CONNECT 33 message is sent via the proxy 50 toEndpoint A 10. On receiving the CONNECT message 55, media channels areopened and the call is established.

As is evident in FIG. 2, the prior art implementation disadvantageouslyrequires the presence of a central call controller or the proxy 50 toimplement Hunt group functionality.

Existing standards packet based network protocols (e.g., ITU-T standardfor H.323 and IETF RFC 3261 for SIP) support direct peer-to-peercommunications between VoIP endpoints without using a central controlleror proxy.

As such, there is an apparent need for a system and method forimplementing proxy independent hunt group function in a VoIP environmentwithout modification to existing available protocols which overcomes orat least alleviates the drawbacks of the prior art systems.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the present invention will now be more fully described,by way of example, with reference to the drawings of which:

FIG. 1 illustrates a message flow diagram of a prior art implementationusing H.323 protocol of a Pickup group function where a Proxy acts as acentral controller for relaying data packets;

FIG. 2 illustrates a message flow diagram of a prior art implementationusing H.323 protocol of a Hunting group function where a Proxy acts as acentral controller for relaying data packets;

FIG. 3 illustrates a block diagram of a system in accordance with anembodiment of the present invention;

FIG. 4 illustrates a flow chart illustrating a method in accordance withan embodiment of the present invention;

FIG. 5 illustrates a flow chart illustrating the step of forwardingincoming calls to the Recording system of FIG. 4;

FIG. 6 illustrates a message flow diagram of Hunt group function inaccordance with an embodiment of the present invention for H.323protocol;

FIG. 7 illustrates a message flow diagram of Hunt group function inaccordance with an embodiment of the present invention for SIP protocol;

FIG. 8 illustrates a single processor or multi processor system withvoice over internet protocol capabilities in accordance with someembodiments of the present invention.

DETAILED DESCRIPTION

In the following description, details are provided to describe thepreferred embodiments of the invention. It shall be apparent to oneskilled in the art, however, that the embodiments may be practicedwithout such details. Some of these details may not be described atlength so as not to obscure the preferred embodiments.

This disclosure teaches a system and method for implementing proxyindependent hunt group function in a VoIP environment without requiringmodifications to existing standard protocols. When the nodes are notmembers of the hunt group, they can still make a normal peer-to-peeroutgoing call and receive a normal peer-to-peer incoming call. A normalpeer-to-peer call refers to the incoming VoIP call destined to a VoIPnode that is not a member of the hunt group. Initiating the outgoingcall is independent of whether the VoIP node is a member of the huntgroup.

Accordingly, in one aspect, some embodiments provide a method forimplementing Hunt group function among a plurality of gateways, each ofthe plurality of gateways coupled to at least one VoIP node in a VoIPenvironment. The method includes the following steps: (a) registering atleast one pre-configured VoIP node of one of the plurality of gatewaysas part of a Hunt group with at least one registration entity, (b)receiving incoming call to a VoIP node, (c) sending INCOMING CALL Callback message and playing ring tone if predetermined conditions aresatisfied, and (d) opening media channel and connecting incoming call ifincoming call is answered before timeout period expires. The steps areperformed without a proxy or central controller for data packettransmission, and the remaining of the at least one VoIP nodes coupledto each of the plurality of gateways need not register with theregistration entity.

In another aspect, some embodiments provide a method for implementingHunt group function among a plurality of gateways, each of the pluralityof gateways coupled to at least one VoIP node in a VoIP environment. Themethod includes the following steps: (a) registering at least onepre-configured VoIP node of the at least one gateway as part of the Huntgroup with at least one registration entity, (b) receiving new incomingcall by the pre-configured VoIP node, (c) sending INCOMING CALL Callback message and playing ring tone if predetermined conditions aresatisfied, and (d) opening media channel and connecting incoming call ifincoming call is answered before timeout period expires. The steps areperformed without a proxy or central controller for data packettransmission, and the remaining of the at least one VoIP nodes coupledto each of the plurality of gateways need not register with theregistration entity.

In yet another aspect, some embodiments provide a system forimplementing Hunt group function in a VoIP environment. The systemincludes a plurality of gateways, at least one VoIP node coupled to eachof the plurality of gateways, and at least one pre-configured VoIP nodeof the plurality of gateways for registering as part of a Hunt groupwith a registration entity. A proxy or central controller is not usedfor data packet transmission, and the remaining of the at least one VoIPnodes coupled to each of the plurality of gateways need not registerwith the registration entity.

As will be appreciated by those skilled in the art, functions andsystems described herein as being implemented in software, firmware,hardware, or a combination thereof can also be implemented in any of theother formats. For example, functions and systems described as beingimplemented in software can also be implemented in firmware, hardware,or a combination of software, firmware, and/or hardware.

This present embodiment considers a system and method for implementingthe Hunt group function without using any proxy functionalities. TheHunt group function of the present embodiment is advantageouslyindependent of the signaling protocol being used by VoIP terminals.Furthermore, there is advantageously no need of any special orproprietary signaling protocol to be implemented.

In fact, it is recommended that the Hunt group functionality of thepresent embodiment be in compliance with existing standards such asH.323 for an endpoint or Session Initiation Protocol (SIP) for a UserAgent (UA).

Instead of all members or VoIP nodes in the Hunt group registering witha registration entity and having a Hunt group number in addition totheir usual peer-to-peer number, at least one pre-configured VoIP nodein the Hunt group would perform the registration and be registered withthe Hunt group number. All other VoIP nodes will be registered with theusual peer-to-peer number to initiate or receive the normal peer-to-peeroutgoing or incoming call respectively. All incoming calls to the Huntgroup will be directed by the gateway to the pre-configured VoIP nodefirst. A software implementable method performed by the gateway willensure that the incoming call is forwarded to a VoIP node within theHunt group.

Referring to FIG. 3, a system in accordance with the present embodimentis shown. The system comprises a plurality of multi-channel gateways 60i (i.e., each denominated by one of 60 a-60 n) making up members of aHunt group, the multi-channel gateways 60 i being further coupled to aplurality of VoIP nodes 62. There are no limits to the number of nodesconnected to a multi-channel gateway 60 i and is only dependent on theprocessing capabilities of the gateway 60 i.

The system further comprises individual VoIP nodes 62 that may beindividual IPPhones 62 a. These individual VoIP nodes 62 may further beconsidered to be single-channel gateways 60 i. References to “gateways”hereinafter are not limited to single-channel nor multi-channel gatewaysnor individual IPPhones 62 a.

The VoIP nodes 62 may be SIP UAs when considering SIP protocol or H.323endpoints when considering H.323 protocol. The VoIP nodes 62 in thepresent embodiment may join or leave a particular Hunt group anytime andmay continue to accept or place VoIP calls as per normal.

Furthermore, instead of registering all members or all VoIP nodes 62belonging to a Hunt group to a registration entity, only onepre-configured VoIP node 62 belonging to the particular hunt group needto be registered. All other VoIP nodes will be registered with the usualpeer-to-peer number to initiate or receive the normal peer-to-peeroutgoing or incoming call respectively. When considering H.323 protocol,the registration entity would be a H.323 gatekeeper, while in SIPprotocol, the registration entity would be a SIP server.

The pre-configured VoIP nodes 62 may register with the registrationentity using one of two possible modes: 1) individual registration modeor 2) gateway registration mode.

In the individual registration mode, the pre-configured VoIP node 62coupled to a single gateway registers an IP Address similar to otherVoIP nodes 62 coupled to the same gateway but with different portnumbers. In the gateway registration mode, each of the gateways 60 iregisters with a single IP address and single port number and thendistributes incoming packets to respective VoIP nodes 62 based on E.164phone numbers or H.323 aliases when considering H.323 protocol or SIPURI when considering SIP.

Referring further to FIG. 3, Gateway GW1 60 a has IP Address 1 and isconnected to the VoIP nodes 62 represented by B11 and C12 etc.Similarly, Gateway GW 2 60 b has IP Address 2 and is also connected tothe VoIP nodes 62 represented by B21 and C21 etc.

Individual IPPhones 62 a represented by IPP1 and IPP2 are individualVoIP endpoints that are also present in the network. Each of the VoIPnodes 62 represented by B11, C12, C13 and, B21, C21 and IPP1, IPP2 arerepresented by separate instances of the signalling stack. These VoIPnodes 62 or instances can be referred to by their respective InstanceIDs. Other additional information about these VoIP Nodes 62 such as“phone_number”, “call_state” (busy, free), “HuntLineEnable” flag aremaintained by their respective gateways and can be accessed with thehelp of their respective Instance IDs. “HuntLineEnable” is a hunt groupflag indicating whether that VoIP node 62 wishes to be part of the Huntgroup and may be ENABLED or DISABLED. “Call_state” indicates the callstate of the VoIP node 62 as in whether it is BUSY or FREE.

As discussed earlier, not all of the VoIP nodes 62 that wish to be apart of the Hunt group need to be registered to a Gatekeeper or a SIPserver using the group transport alias address. Only one pre-configuredVoIP node 62 will need to register to the Gatekeeper with a Hunt groupnumber as well as its own normal phone number used for peer-to-peercalls. All other VoIP nodes will be registered with the usualpeer-to-peer number to initiate or receive the normal peer-to-peeroutgoing or incoming call respectively.

The VoIP nodes 62 participating in the Hunt group function however needto all ENABLE the Hunt group flag “HuntLineEnable” which acts as anidentifier for being a member of the Hunt group. When there is anincoming call for the hunt group, the call is first routed to theearlier preconfigured VoIP node 62. The gateways 60 i should not beconfused for a “proxy” as these gateways do not necessarily relay datapackets on behalf of other gateways or VoIP nodes 62. Notably, thesegateways 60 i assist in hunting or searching for an available VoIP node62, amongst the other VoIP nodes 62 connected to it. All the gateways 60i will implement a method of the present embodiment to perform the Huntgroup functions and the routing of the calls to other free and availableVoIP nodes 62.

When the incoming call is a peer-to-peer call directed to member of theHunt Group, the Hunt group flag is then the factor which decides how thecall is to be treated. If the Hunt group flag is ENABLED, the incomingcall is treated like a Hunt group call and if the Hunt group flag isDISABLED, it is treated as a normal peer-to-peer call.

The method in accordance with the present embodiment may be implementedby way of a software plug-in residing in the gateways belonging to theHunt group.

Referring to FIG. 4, the method for implementing Hunt group functionamong a plurality of gateways starts with the step of registering 410 apre-configured VoIP node 62 with the registration entity at systeminitialization of the gateways 60 i.

New incoming call to a respective VoIP node 62 is received 415 where theincoming call is directed at either an instance ID belonging to the Huntgroup number or for a peer-to-peer number for the respective VoIP node62. After which, two predetermined conditions: a Hunt group flag and aCall state of the VoIP node 62 are checked by the gateway 60 i. If theHunt group flag is ENABLED 420 and the Call state is FREE 425, then an“incoming_call” call back message is sent 430 to the gateway 60 i withthe instance ID of the VoIP node for which the incoming call is receivedand a “Ring Tone” is played on the particular VoIP node 62 to indicate anew incoming call. If the incoming call is answered 435 within apredetermined time-out period, media channels are opened 440 and theincoming call is connected.

If the Hunt group flag is ENABLED 420 but the Call state is BUSY 425 orif the incoming call is not answered before the predetermined time-outperiod 435 has expired, a next 445 VoIP node 62 in the same gateway 60 iin the Hunt group is considered and checked if the Hunt group flag isENABLED and if the Call state is FREE. If there are no other VoIP nodes62 satisfying both the two predetermined conditions in the same gateway60 i, the incoming call is forwarded 455 to a Recording System.

If there are other VoIP nodes 62 satisfying both the two predeterminedconditions, the incoming call is then forwarded 450 to these VoIP nodes62. The flow of the method 400 then starts at the step of sending 430“Incoming Call” back message and playing ring tone.

If the Hunt group flag is DISABLED 420, the incoming call is treated asa non Hunt group call and a normal peer-to-peer call is established 429,media channels are opened 440 and the incoming call is connected.

The Recording system can be considered to be the last node of all thegateways and is configured with the phone number for forwarding to thefirst VoIP node 62 in a next gateway. If there is no Recording systemavailable as in the example of a single channel gateway 60 i or singleIPPhone, the single channel Gateway 60 i itself is configured to forwardto the first VoIP node 62 of the next gateway 60 i.

Referring to FIG. 5, the step of forwarding 455 the incoming call to theRecording system further starts with the step of receiving 510 theforwarded incoming call from the gateway 60 i. The Recording system maybe adapted to play 515 a message and provide options for the user torecord a message. An example of the played message may be, “Press 1 torecord your message or continue to hold to speak to next availableline”. If the user chooses to take 520 the record message option, theforwarded call is terminated and the recording system activated torecord 525 the user's message.

If however, the user chooses not to take 520 the record message option,the call is forwarded to the first VoIP node 62 of the next gateway 60 iin the same Hunt group. The next gateway 60 i will perform the method400 starting at the step of sending 415 incoming call to thepre-configured VoIP node and go through the same algorithm again toattempt to establish the call to a next member of the Hunt group.

All the VoIP nodes 62 that do not wish to be part of the Hunt group maydisable the Hunt group flag “HuntGroupEnable”. If the gateway finds the“HuntLineEnable” flag DISABLED, then the incoming call to the “HuntGroup” is never forwarded to that VoIP node 62.

These VoIP nodes 62 behave normally like other VoIP endpoints for thepeer-to-peer calls direct to them regardless of whether they are part ofthe Hunt Group. But if any of the VoIP nodes have the “HuntLineEnable”flag DISABLED and enabled the normal call forwarding to the VoIP nodethat have the “HuntLineEnable” flag ENABLED, then the same method 400starting at the step of 425 of the present embodiment is performed.

The algorithm of the method 400 may be represented by the followingpseudo code: CallNotEstablished = TRUE; if(New Incoming Call forInstance “inst”) {  CallParam.Instance       = inst; if(inst.HuntLineFlag == ENABLED)  {   if (inst.call_state == NOT_BUSY)  {    Send INCOMING CALL message to inst;    Wait tillinst.noanswertime for inst to Accept the Call;    if(CallAccepted)    {    CallNotEstablished = FALSE;     Establish The Call to inst; END;   }   }  }  else {   Process The Call as Normal Incoming Call;   END; } } if(CallNotEstablished) { SelGateway( ); while (ThisGatewayExists) { SelInstance( );  while(ThisInstancesExists)  {   if((selectedinstance.HuntLineFlag == ENABLED) &&  (selectedinstance.call_state == NOT_BUSY) )   {    Forward The Call ToThe Selected Instance;    Call <Protocol>CallForward(inst,   selectedinstance.phone_number);    CallParam.Instance =selectedinstance;    CallAlreadyForwarded = TRUE;    CallNotEstablished= FALSE;    break;   }   else {    SelNextInstanceForThisGateway( );   continue;   }  }  if(CallAlreadyForwarded == TRUE) {  CallAlreadyForwarded = FALSE;   break;  } else {   Forward The Call Tothe Preconfigured FirstEndpoint of   NextGateway;   SelNextGateway( ); } } if(CallNotEstablished)  Drop the Call; END; }

Referring to FIG. 6, shows the Hunt group functionality in accordancewith the present embodiment implemented using H.323 protocol. Themessage flow is implemented without the use of any proxy or centralcontrollers. Endpoint A 10 calls the line group comprising of Endpoint B20 and C 30. This present example uses the H.323 protocol but thesignaling protocol is not a limitation and may be implemented with anyVoIP protocols like SIP.

When Endpoint A 10 calls Endpoint B 20 which is a member of the Huntgroup, End point B 20 responds with Call Proceeding 21 and Alerting 22messages. Also, Incoming Call callback message according to H.225 Setupmessage 11 is sent to the Gateway 60 i to indicate a new incoming call.

Assuming that Endpoint B 20 does not answer the incoming call, after apredetermined timeout period, the incoming call is forwarded to a nextendpoint or VoIP node 62 in the Hunt group. The gateway 60 i checks theavailability of the next VoIP node 62 using the method 400 of thepresent embodiment.

When the gateway 60 i finds the next Call State free VoIP node 62 with“HuntLineEnable” flag ENABLED, it invokes a H.323CallForward API 28 withthe phone number of that next VoIP node 62. The call is forwarded usingthe existing protocols like H.450.3 Call Forwarding ITU-T standard forH.323. Endpoint B responds with Call Rerouting Invoke 28 message alongwith the phone number for the next member in the hunt group: Endpoint C30 in the illustrated case.

On receiving this message, Endpoint A 10 sends a Call ReroutingReturnResult 27 message to indicate success or failure. Assuming it issuccessful, it sends a H.225 Setup 12 message to Endpoint C 30 withdivertingLegInfo2 Invoke PDU to indicate that it is a forwarded call andnot a normal peer-to-peer incoming call. On receiving this message,Endpoint C 30 responds with Call Proceeding 31 and Alerting 32 messagesto Endpoint A 10. Endpoint A 10 then sends a Release Complete 13 messageto drop the existing call with Endpoint B 20.

If Endpoint C 30 answers the call, then a CONNECT 23 message is sent toEndpoint A 10 with divertingLeglnfo3 invoke PDU. If Endpoint C 30 isbusy then the call is forwarded to the next member in the hunt-group ina similar above described manner.

Referring to FIG. 7, shows the Hunt group functionality in accordancewith the present embodiment implemented using SIP protocol. The messageflow is implemented without the use of any proxy or central controllers.

In the present example, Endpoint A 10 calls the Hunt group comprising ofEndpoint B 20 and C 30. When Endpoint A 10 calls Endpoint B 20, EndpointA 10 sends INVITE 11 a message to Endpoint B 20. Upon receiving theINVITE 11 a message, the SIP signaling protocol stack sends anIncoming_Call callback 11 a message to the gateway 60 i to indicate anew incoming call.

Assuming that Endpoint B 20 does not answer the call, then after apredetermined timeout period, the call is forwarded to the nextavailable endpoint. The gateway 60 i checks the availability of the nextavailable VoIP node. When the gateway 60 i finds the next Call statefree VoIP node 62 with “HuntLineEnable” flag enabled, it invokes theSIPCallForward API 21 a with the phone number of that particular VoIPnode 62.

Upon invoking this API, Endpoint B 20 sends a 302 Moved Temporarily 21 amessage with the SIP Contact Header containing the SIP URI address forthe next available VoIP node in the Hunt group. The call is forwardedusing the existing standard for Call Forwarding mechanism in RFC 3261for SIP.

Endpoint A 10 on receiving the 302 Moved Temporarily 21 a messageresponse, redirects the INVITE 11 c message to Endpoint C 30. IfEndpoint C 30 is not busy, then it responds with 100 Trying 21 b and 180Ringing 21 c message. When Endpoint C 30 answers the call, a 200 OK 21 dmessage is sent to Endpoint A 10. Endpoint A 10 acknowledges using anACK11 d message. Subsequently the media information is negotiated andmedia channels are opened to establish the call.

FIG. 8 illustrates a system in accordance with some embodiments of thepresent invention. The system 802 can be a single-processor ormulti-processor system and includes an internet access device (IAD) 804with voice over internet protocol (VoIP) signaling protocol andapplication capabilities. The internet access device 804 includes atleast one communications interface. IAD 804 also includes a DigitalSignal Processor (DSP) to perform the voice codec, tone detection, andtone generation functionality. In a single processor IAD solution theDSP functionality and the VoIP signaling functionality can beimplemented on the same processor. Alternately, in a multiprocessor IADsolution, these functionalities can be divided among differentprocessors. FIG. 8 shows several communication interfaces 806A-806D usedin the Internet Access Device. Communication interface 806A can be usedby a PC to enable the user to connect to Internet. An analog phone whenconnected to interface 806B is enabled to function as Voice over IPphone and, depending on the number of channels supported by the InternetAccess Device 804, more than one analog phone can be connected to thisinterface 806B. Communication interface 806C and 806D can be used toconnect to a LAN/WAN using, respectively, ADSL or Ethernet interface.The messages received by the VoIP signaling protocol 807 arecommunicated using an inter process communication component 808 to adigital signal processor 810.

The present embodiment thus advantageously allows the implementation ofproxy independent hunt group function in a VoIP environment. There isadvantageously no need for any special or proprietary signaling protocolto be implemented and the present embodiment advantageously utilizesexisting standards such as H.323 or SIP.

Only one pre-configured VoIP node in the Hunt group would need to beregistered with the Hunt group number. All incoming calls to the Huntgroup will be directed by the gateway to the pre-configured VoIP nodefirst. The method of the present embodiment performed by the gatewaywill ensure that the incoming call is forwarded to a VoIP node withinthe Hunt group.

While this detailed description has set forth some embodiments of thepresent invention, the appended claims will cover other embodiments ofthe present invention which differ from the described embodimentsaccording to various modifications and improvements. For example,embodiments of the present invention are described in connection withthe International Telecommunications Union's H.323 and the InternetEngineering Task Force's Session Initiation Protocol (SIP) standards.However, embodiments of the present invention implemented in connectionwith other standards, such as Cisco's Skinny Client Control Protocol orthe Internet Engineering Task Force's Media Gateway control protocol(MGCP) or Megaco (H.248), would also be within the scope of the appendedclaims.

The numbering of steps in the appended method claims does not indicatethat the steps must be performed in any particular order.

1. A method for implementing Hunt group function among a plurality ofgateways, each of the plurality of gateways coupled to at least one VoIPnode in a VoIP environment, the method comprising the steps: a)registering at least one pre-configured VoIP node of one of theplurality of gateways as part of a Hunt group with at least oneregistration entity; b) receiving incoming call to a VoIP node; c)sending INCOMING CALL Call back message and playing ring tone ifpredetermined conditions are satisfied; and d) opening media channel andconnecting incoming call if incoming call is answered before timeoutperiod expires; wherein the steps are performed without a proxy orcentral controller for data packet transmission; and further wherein anyremaining of the at least one VoIP nodes coupled to each of theplurality of gateways need not register with the registration entity. 2.The method according to claim 1, wherein the predetermined conditionsare: c1) Hunt group flag ENABLED; and c2) Call State FREE.
 3. The methodaccording to claim 1, wherein the any remaining of the at least one VoIPnodes coupled to each of the plurality of gateways may leave the Huntgroup by setting the Hunt group flag to DISABLED.
 4. The methodaccording to claim 3, further comprising the step: c11) establishingnormal peer-to-peer call.
 5. The method according to claim 2, wherein ifthe pre-configured VoIP node does not satisfy the predeterminedcondition of c2) or if incoming call is NOT answered before timeoutperiod expires, the method further comprises the steps: e) forwardingincoming call to next VoIP node in the one of the plurality of gatewaysif another VoIP node satisfying the predetermined conditions exists inthe one of the plurality of gateways; and f) forwarding incoming call toa recording system of the one of the plurality of gateways if there areno more VoIP nodes in the one of the plurality of gateways if anotherVoIP node satisfying the predetermined conditions does not exist in theone of the plurality of gateways.
 6. The method according to claim 5,wherein step f) further comprises: f1) receiving forwarded incomingcall; f2) playing pre-recorded message and providing options forrecording messages; and f3) recording message if record message optionis taken.
 7. The method according to claim 6, further comprising thesteps: f4) forwarding forwarded incoming call to next VoIP node ofanother of the plurality of gateways.
 8. The method according to claim1, wherein the VoIP Nodes are selected from the group consisting ofH.323 endpoints and SIP User Agents.
 9. The method according to claim 1,wherein the at least one registration entity is selected from the groupconsisting of H.323 gatekeeper and SIP server.
 10. The method accordingto claim 1, wherein the step a) further comprises: a1) registering asingle gateway IP address and a single port number.
 11. The methodaccording to claim 1, wherein the step a) further comprises: a2)registering a Hunt group number and a peer-to-peer number.
 12. Themethod of claim 1, wherein the step b) further comprises: b1) receivingnew incoming call by the pre-configured VoIP node.
 13. A computerprogram product for implementing Hunt group function among a pluralityof gateways, each of the plurality of gateways coupled to at least oneVoIP node in a VoIP environment, the computer program product comprisinga computer readable medium including instructions for performing thefollowing steps: a) registering at least one pre-configured VoIP node ofone of the plurality of gateways as part of a Hunt group with at leastone registration entity; b) receiving incoming call to a VoIP node; c)sending INCOMING CALL Call back message and playing ring tone ifpredetermined conditions are satisfied; and d) opening media channel andconnecting incoming call if incoming call is answered before timeoutperiod expires; wherein the steps are performed without a proxy orcentral controller for data packet transmission; and further wherein anyremaining of the at least one VoIP nodes coupled to each of theplurality of gateways need not register with the registration entity.14. The program product according to claim 13, wherein the predeterminedconditions are: c1) Hunt group flag ENABLED; and c2) Call State FREE.15. The program product according to claim 13, wherein the any remainingof the at least one VoIP nodes coupled to each of the plurality ofgateways may leave the Hunt group by setting the Hunt group flag toDISABLED.
 16. The program product according to claim 15, wherein thecomputer readable medium further includes instructions for performingthe following step: c11) establishing normal peer-to-peer call.
 17. Theprogram product according to claim 14, wherein the computer readablemedium further includes instructions for performing the following stepsif the pre-configured VoIP node does not satisfy the predeterminedcondition of c2) or if incoming call is NOT answered before timeoutperiod expires: e) forwarding incoming call to next VoIP node in the oneof the plurality of gateways if another VoIP node satisfying thepredetermined conditions exists in the one of the plurality of gateways;and f) forwarding incoming call to a recording system of the one of theplurality of gateways if there are no more VoIP nodes in the one of theplurality of gateways if another VoIP node satisfying the predeterminedconditions does not exist in the one of the plurality of gateways. 18.The program product according to claim 17, wherein step f) furthercomprises: f1) receiving forwarded incoming call; f2) playingpre-recorded message and providing options for recording messages; andf3) recording message if record message option is taken.
 19. The programproduct according to claim 18, wherein the computer readable mediumfurther includes instructions for performing the following step: f4)forwarding forwarded incoming call to next VoIP node of another of theplurality of gateways.
 20. The program product according to claim 13,wherein the VoIP Nodes are selected from the group consisting of H.323endpoints and SIP User Agents.
 21. The program product according toclaim 13, wherein the at least one registration entity is selected fromthe group consisting of H.323 gatekeeper and SIP server.
 22. The programproduct according to claim 13, wherein the step a) further comprises:a1) registering a single gateway IP address and a single port number.23. The program product according to claim 13, wherein the step a)further comprises: a2) registering a Hunt group number and apeer-to-peer number.
 24. The program product of claim 13, wherein thestep b) further comprises: b1) receiving new incoming call by thepre-configured VoIP node.
 25. A system for implementing Hunt groupfunction in a VoIP environment; the system comprising: a plurality ofgateways; at least one VoIP node coupled to each of the plurality ofgateways; at least one pre-configured VoIP node of the plurality ofgateways for registering as part of a Hunt group with a registrationentity; wherein a proxy or central controller is not used for datapacket transmission; and further wherein the remaining of the at leastone VoIP nodes coupled to each of the plurality of gateways need notregister with the registration entity.
 26. The system according to claim25, wherein the VoIP Nodes are selected from the group consisting ofH.323 endpoints and SIP User Agents.
 27. The system according to claim25, wherein the registration entity is selected from the groupconsisting of H.323 gatekeeper and SIP server.
 28. The system accordingto claim 25, wherein a recording system may be coupled to each of theplurality of gateways.
 29. The system according to claim 25, whereinremaining of the at least one VoIP nodes coupled to each of theplurality of gateways may leave the Hunt group by setting a Hunt groupflag to DISABLED.
 30. A system with Internet access capabilities andvoice over internet protocol (VoIP) capabilities comprising: at leastone voice codec processor; a voice over internet protocol andapplication module; at least one communications interface, configured toaccess the Internet and make VoIP calls simultaneously; and a computerprogram product for implementing Hunt group function among a pluralityof gateways, each of the plurality of gateways coupled to at least oneVoIP node in a VoIP environment, the computer program product comprisinga computer readable medium, operably associated with the at least onedigital signal processor and with the VoIP protocol and applicationmodule, including instructions for performing the following steps: a)registering at least one pre-configured VoIP node of one of theplurality of gateways as part of a Hunt group with at least oneregistration entity; b) receiving incoming call to a VoIP node; c)sending INCOMING CALL Call back message and playing ring tone ifpredetermined conditions are satisfied; and d) opening media channel andconnecting incoming call if incoming call is answered before timeoutperiod expires; wherein the steps are performed without a proxy orcentral controller for data packet transmission; and further wherein anyremaining of the at least one VoIP nodes coupled to each of theplurality of gateways need not register with the registration entity.31. The system according to claim 30, wherein the system includes adevice selected from the group consisting of set-top box, residentialgateway, asymmetric digital subscriber line customer premise equipment(ADSL CPE), and VoIP telephone.
 32. The system according to claim 30,wherein the predetermined conditions are: c1) Hunt group flag ENABLED;and c2) Call State FREE.
 33. The system according to claim 30, whereinthe any remaining of the at least one VoIP nodes coupled to each of theplurality of gateways may leave the Hunt group by setting the Hunt groupflag to DISABLED.
 34. The system according to claim 33, wherein thecomputer readable medium further includes instructions for performingthe following step: c11) establishing normal peer-to-peer call.
 35. Thesystem according to claim 32, wherein the computer readable mediumfurther includes instructions for performing the following steps if thepre-configured VoIP node does not satisfy the predetermined condition ofc2) or if incoming call is NOT answered before timeout period expires:e) forwarding incoming call to next VoIP node in the one of theplurality of gateways if another VoIP node satisfying the predeterminedconditions exists in the one of the plurality of gateways; and f)forwarding incoming call to a recording system of the one of theplurality of gateways if there are no more VoIP nodes in the one of theplurality of gateways if another VoIP node satisfying the predeterminedconditions does not exist in the one of the plurality of gateways. 36.The system according to claim 35, wherein step f) further comprises: f1)receiving forwarded incoming call; f2) playing pre-recorded message andproviding options for recording messages; and f3) recording message ifrecord message option is taken.
 37. The system according to claim 36,wherein the computer readable medium further includes instructions forperforming the following step: f4) forwarding forwarded incoming call tonext VoIP node of another of the plurality of gateways.
 38. The systemaccording to claim 30, wherein the VoIP Nodes are selected from thegroup consisting of H.323 endpoints and SIP User Agents.
 39. The systemaccording to claim 30, wherein the at least one registration entity isselected from the group consisting of H.323 gatekeeper and SIP server.40. The system according to claim 30, wherein the step a) furthercomprises: a1) registering a single gateway IP address and a single portnumber.
 41. The system according to claim 30, wherein the step a)further comprises: a2) registering a Hunt group number and apeer-to-peer number.
 42. The system of claim 30, wherein the step b)further comprises: b1) receiving new incoming call by the pre-configuredVoIP node.